package com.turing.post.cardmanagement.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 卡特殊业务登记薄
 * @author kz
 */
@Remote
@Local
public interface CardRegisterDao {

	/**
	 * 插入特殊业务登记薄信息
	 * 
	 * @param cr
	 * @throws PCPSApplicationException
	 */
	public void insert(CardRegister cr) throws PCPSApplicationException;

	/**
	 * 更新特殊业务登记薄信息
	 * 
	 * @param cr
	 * @throws PCPSApplicationException
	 */
	public void update(CardRegister cr) throws PCPSApplicationException;

	/**
	 * 根据主键获取特殊业务登记薄对象
	 * 
	 * @param cardRegisterId
	 * @return
	 */
	public CardRegister getCardRegisterByCardRegisterId(
			BigInteger cardRegisterId);

	/**
	 * 根据条件获取特殊业务登记薄列表
	 * 
	 * @param webInput
	 * @param cardNo
	 * @param tranType
	 * @param cardHolder
	 * @param startTime
	 * @param endTime
	 * @param saleBranchNo
	 * @param page
	 * @return
	 */
	public List<CardRegister> getCardRegisterListByCondition(
			PCPSWebInput webInput, String cardNo, String tranType,
			String cardHolder, String startTime, String endTime,
			String saleBranchNo, Integer page);

	/**
	 * 根据条件获取特殊业务登记薄总数
	 * 
	 * @param webInput
	 * @param cardNo
	 * @param tranType
	 * @param cardHolder
	 * @param startTime
	 * @param endTime
	 * @param saleBranchNo
	 * @return
	 */
	public BigInteger getCardRegisterTotalByCondition(PCPSWebInput webInput,
			String cardNo, String tranType, String cardHolder,
			String startTime, String endTime, String saleBranchNo);
}
